package com.jxt.myapp.dao;

import java.util.List;

import com.jxt.myapp.domain.account.Authority;
import com.jxt.myapp.domain.account.Role;
import com.jxt.myapp.domain.account.User;
import com.jxt.myapp.domain.jqgrid.JqGridParameter;

public interface IAccountDao {

	// ================================>Authority
	/**
	 * 获得所有的权限
	 */
	public List<Authority> getAllAuthority(JqGridParameter jq);

	/**
	 * 获得所有的权限的数量
	 */
	public long getAllAuthorityCount();

	/**
	 * 获得所有的权限(带参数)
	 */
	public List<Authority> getAllAuthorityByParameters(JqGridParameter jq);

	/**
	 * 获得所有的权限的数量(带参数)
	 */
	public long getAllAuthorityByParametersCount(JqGridParameter jq);

	/**
	 * 根据ID获得对应的权限
	 */
	public Authority getAuthorityById(String id);

	/**
	 * 修改权限信息
	 */
	public int updateAuthority(Authority auth);

	/**
	 * 添加权限
	 */
	public int addAuthority(Authority auth);

	/**
	 * 批量删除权限
	 */
	public int[] deleteAuthority(List<Authority> auth);

	// ================================>Role

	/**
	 * 获得所有的角色
	 */
	public List<Role> getAllRole(JqGridParameter jq);

	/**
	 * 获得所有的角色数量
	 */
	public long getAllRoleCount();

	/**
	 * 获得所有的角色(带参数)
	 */
	public List<Role> getAllRoleByParameters(JqGridParameter jq);

	/**
	 * 获得所有的角色数量(带参数)
	 * 
	 * @return
	 */
	public long getAllRoleCountByParameters(JqGridParameter jq);

	/**
	 * 根据ID获得对应的角色(Role)
	 * 
	 * @return
	 */
	public Role getRoleById(String id);

	/**
	 * 新增角色(Role)
	 */
	public int addRole(Role role);

	/**
	 * 修改角色(Role)
	 */
	public int udpateRole(Role role);

	/**
	 * 批量删除角色(Role)
	 */
	public int[] deleteRole(List<Role> roleList);

	// ================================>Role

	/**
	 * 获得所有的用户信息(User)
	 */
	public List<User> getAllUser(JqGridParameter jq);

	/**
	 * 获得所有用户信息数量
	 */
	public long getAllUserCount();

	/**
	 * 获得所有的用户信息(User)(带参数)
	 */
	public List<User> getAllUserByParameters(JqGridParameter jq);

	/**
	 * 获得所有用户信息数量(带参数)
	 */
	public long getAllUserByParametersCount(JqGridParameter jq);

	/**
	 * 根据UserId获得对应用户信息
	 */
	public User getUserById(String id);

	/**
	 * 根据loginName获得对应用户信息
	 * 
	 * @return
	 */
	public User getUserByloginName(String loginName);

	/**
	 * 新增User
	 */
	public int addUser(User user);

	/**
	 * 新增User
	 */
	public int updateUser(User user);

	/**
	 * 批量删除用户(User)
	 */
	public int[] deleteUser(List<User> userList);

	// ================================>Role_Authority

	/**
	 * 添加角色的权限
	 */
	public int[] addRoleAuthority(String roleId, String[] authIds);

	/**
	 * 删除角色的权限
	 */
	public int deleteRoleAuthority(String roleId);

	// ================================>User_Role

	public int[] addUserRole(String userId, String[] roleIds);

	public int deleteUserRole(String userId);

}
